package cn.wolfcode.shop.api.service;


import cn.wolfcode.shop.api.domain.Product;
import cn.wolfcode.shop.api.domain.ProductCatalogPropertyValue;
import cn.wolfcode.shop.api.page.PageResult;
import cn.wolfcode.shop.api.query.ProductListQueryObject;
import cn.wolfcode.shop.api.query.ProductQueryObject;
import cn.wolfcode.shop.api.vo.ProductVo;

import java.util.List;

public interface IProductService {
    List<Product> getAll();

    List<Product> listProducts();

    Product get(Long id);

    Product getProductInfoVo(Long id);

    int save(Product product);

    Product saveProduct(ProductVo vo);

    int update(Product product);

    List<ProductCatalogPropertyValue> selectProductCatalogPropertyValueByProductId(Long id);

    PageResult query(ProductQueryObject qo);

    PageResult queryProductListInterface(ProductListQueryObject qo);
}
